Estructuras dinámicas de datos
Consultas, lista de correo 'C++ Con Clase' 'C++ Con Clase' página de entrada Librerías estándar C Tabla de contenido Contactar con Webmaster
*Introducción
*1. Listas abiertas
*2. Pilas
 . 2.1 Definición
 . 2.2 Tipos de datos
 . 2.3 Operaciones básicas
 . 2.4 Push, insertar
 . 2.5 Pop, leer y eliminar
 . 2.6 Ejemplo en C
 . 2.7 Ejemplo en C++
 . 2.8 Ejemplo C++ plantillas
*3. Colas
*4. Listas circulares
*5. Listas doblemente enlazadas
*6. Árboles
*7. Árboles binarios de búsqueda (ABB)
*8. Árboles AVL
*Descarga de ejemplos
<< < > >>

2.3 Operaciones básicas con pilas:  

Las pilas tienen un conjunto de operaciones muy limitado, sólo permiten las operaciones de "push" y "pop":

  • Push: Añadir un elemento al final de la pila.
  • Pop: Leer y eliminar un elemento del final de la pila.

2.4 Push, insertar elemento:  

Las operaciones con pilas son muy simples, no hay casos especiales, salvo que la pila esté vacía.

Push en una pila vacía:

Partiremos de que ya tenemos el nodo a insertar y, por supuesto un puntero que apunte a él, además el puntero a la pila valdrá NULL:

El proceso es muy simple, bastará con que:

  1. nodo->siguiente apunte a NULL.
  2. Pilaa apunte a nodo.

Push en una pila no vacía:

Podemos considerar el caso anterior como un caso particular de éste, la única diferencia es que podemos y debemos trabajar con una pila vacía como con una pila normal.

De nuevo partiremos de un nodo a insertar, con un puntero que apunte a él, y de una pila, en este caso no vacía:

El proceso sigue siendo muy sencillo:

  1. Hacemos que nodo->siguiente apunte a Pila.
  2. Hacemos que Pila apunte a nodo.

2.5 Pop, leer y eliminar un elemento:  

Ahora sólo existe un caso posible, ya que sólo podemos leer desde un extremo de la pila.

Partiremos de una pila con uno o más nodos, y usaremos un puntero auxiliar, nodo:

  1. Hacemos que nodo apunte al primer elemento de la pila, es decir a Pila.
  2. Asignamos a Pila la dirección del segundo nodo de la pila: Pila->siguiente.
  3. Guardamos el contenido del nodo para devolverlo como retorno, recuerda que la operación pop equivale a leer y borrar.
  4. Liberamos la memoria asignada al primer nodo, el que queremos eliminar.

Si la pila sólo tiene un nodo, el proceso sigue siendo válido, ya que el valor de Pila->siguiente es NULL, y después de eliminar el último nodo la pila quedará vacía, y el valor de Pila será NULL.

<< < > >>